07849 flickrの写真をCosenseに貼るコードをChatGPTに改良していただきました
No. 07849, by shio / 塩澤一洋 https://flic.kr/p/2rDyWFk https://live.staticflickr.com/65535/54902749617_f7373f0590_3k.jpg
以前作成した、flickr.comからCosenseに写真を貼り付けるためのbookmarkletが機能しなくなりました。
その後、/shio/openai.iconChatGPTに頼んで改良。
現在使っているコードはこちら。
code:javascript
javascript:(async%20function()%7Bvar%20x=document.querySelector('.bb-code-text-field');if(!x)%7Balert(%22BBCode%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%81%8C%E8%A6%8B%E3%81%A4%E3%81%8B%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%81%A7%E3%81%97%E3%81%9F%E3%80%82%22);return;%7Dvar%20s=x.value;s=s.replace('%5D%5Bimg%5D','%20').replace('%5B/url%5D%20by%20%5Burl=https://www.flickr.com/photos/shio/%5DKazuhiro%20Shiozawa%5B/url%5D,%20on%20Flickr','').replace('jpg%5B/img%5D%5B/url%5D%5Burl=https://flic.kr/p/','jpg%5D%5D').replace('%5Burl=','%5B%5B').replace(/%5D%5D.*/,'%5D%5D%5Cn');try%7Bawait%20navigator.clipboard.writeText(s);let%20alertBox=document.createElement(%22div%22);alertBox.textContent=%22%E3%82%B3%E3%83%94%E3%83%BC%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%EF%BC%81%22;alertBox.style.position=%22fixed%22;alertBox.style.top=%2250%25%22;alertBox.style.left=%2250%25%22;alertBox.style.transform=%22translate(-50%25,-50%25)%22;alertBox.style.background=%22rgba(0,%200,%200,%200.8)%22;alertBox.style.color=%22%23fff%22;alertBox.style.padding=%2215px%2030px%22;alertBox.style.borderRadius=%228px%22;alertBox.style.zIndex=%2210000%22;alertBox.style.fontSize=%2218px%22;document.body.appendChild(alertBox);setTimeout(()=%3E%7BalertBox.remove();%7D,1000);%7Dcatch(err)%7Balert(%22%E3%82%B3%E3%83%94%E3%83%BC%E3%81%AB%E5%A4%B1%E6%95%97%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F:%20%22+err);%7D%7D)(); https://flic.kr/p/2rDyWDS https://live.staticflickr.com/65535/54902749532_1d6b524a23_3k.jpg
もう自分で書く必要ない。
今回も/shio/openai.iconChatGPTに作成を依頼しました。
作っていただいたコードがこちら。
code:javascript
javascript:(async function () {
function toast(msg) {
const d = document.createElement('div');
d.textContent = msg;
d.style.position = 'fixed';
d.style.top = '50%';
d.style.left = '50%';
d.style.transform = 'translate(-50%,-50%)';
d.style.background = 'rgba(0,0,0,0.8)';
d.style.color = '#fff';
d.style.padding = '14px 22px';
d.style.borderRadius = '10px';
d.style.zIndex = '2147483647';
d.style.fontSize = '16px';
d.style.fontFamily = 'system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial';
document.body.appendChild(d);
setTimeout(() => d.remove(), 1100);
}
async function copy(text) {
try {
await navigator.clipboard.writeText(text);
return true;
} catch {
try {
const ta = document.createElement('textarea');
ta.value = text;
ta.style.position = 'fixed';
ta.style.top = '-1000px';
document.body.appendChild(ta);
ta.focus();
ta.select();
const ok = document.execCommand('copy');
ta.remove();
return ok;
} catch {
return false;
}
}
}
try {
const el = document.querySelector(
'.bb-code-text-field, textarea.bb-code-text-field, textareaname*=bbcode' );
if (!el) {
alert('BBCodeテキストが見つかりませんでした。Flickrの「共有→埋め込み→BBCode」を開いてから実行してください。');
return;
}
const s = el.value || el.textContent || '';
if (!m) {
alert('BBCodeの形式を解析できませんでした。BBCodeを選択してから実行してください。');
return;
}
// 画像URL末尾の ?以降(s=... など)を削除
const img = m2.replace(/(\.(?:jpg|jpeg|png|gif))(?:\?.*)?$/i, '$1'); const out = [[${page} ${img}]]\n;
const ok = await copy(out);
if (ok) {
toast('コピーしました:…');
} else {
alert('クリップボードへのコピーに失敗しました。生成結果:\n\n' + out);
}
} catch (e) {
alert('エラー: ' + e);
}
})();
エンコードされたスクリプトがこちら。
code:javascript
javascript:(async function(){function T(t){var d=document.createElement('div');d.textContent=t;d.style.position='fixed';d.style.top='50%';d.style.left='50%';d.style.transform='translate(-50%,-50%)';d.style.background='rgba(0,0,0,0.8)';d.style.color='#fff';d.style.padding='14px 22px';d.style.borderRadius='10px';d.style.zIndex='2147483647';d.style.fontSize='16px';d.style.fontFamily='system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial';document.body.appendChild(d);setTimeout(function(){d.remove();},1100);}async function copy(t){try{await navigator.clipboard.writeText(t);return true;}catch(e){try{var ta=document.createElement('textarea');ta.value=t;ta.style.position='fixed';ta.style.top='-1000px';document.body.appendChild(ta);ta.focus();ta.select();var ok=document.execCommand('copy');ta.remove();return ok;}catch(_){return false;}}}try{var el=document.querySelector('.bb-code-text-field, textarea.bb-code-text-field, textareaname*=bbcode');if(!el){alert('BBCodeテキストが見つかりませんでした。Flickrの「共有→埋め込み→BBCode」を開いてから実行してください。');return;}var s=el.value||el.textContent||'';var m=s.match(/\[url=(^\]+)\]\img\([^\[]+?)\\/img\\\/url\/i);if(!m){alert('BBCodeの形式を解析できませんでした。BBCodeを選択してから実行してください。');return;}var page=m1;var img=m2.replace(/(\.(?:jpg|jpeg|png|gif))(?:\?.*)?$/i,'$1');var out=''+page+' '+img+'\n';var ok=await copy(out);if(ok){T('コピーしました:…');}else{alert('クリップボードへのコピーに失敗しました。生成結果:\\n\\n'+out);}}catch(e){alert('エラー: '+e);}})(); これをブックマーク一つ目に仕込み、BBcodeを開いてcommand+option+1を押したところ、「コピーしました:⋯」との表示。shiology.orgにペイストしたらこのとおり。ちゃんと写真が表示されました。めでたい。 https://flic.kr/p/2rDEzDu https://live.staticflickr.com/65535/54903849538_4ac3af0698_3k.jpg